<?php
// Media-Pfad-Generator
function mediaGeneratePath($linkadding = "")
{
  global $showfoldera;
  
  $t = "";
  if(!empty($linkadding)) {
    $linkadding = "&amp;".$linkadding;
  }
  $r = "<a href=\"".$media_linker."&amp;folder=".$linkadding."\" class=\"tooltip\" title=\"Hauptverzeichnis :: Zum Hauptverzeichnis wechseln\"><b>Hauptverzeichnis</b></a>/";
  foreach($showfoldera as $s) {
    $t .= "/".$s;
    $r .= "<a href=\"".$media_linker."&amp;folder=".$t.$linkadding."\" class=\"tooltip\" title=\"".longkicker($s, 18)." :: Zu diesem Ordner wechseln\">".$s."</a>/";
  }
  return $r;
}

// $showfolder-Variable: Zeigt auf den ausgewaehlten Ordner
if(gpcGet("folder","",2)) {
  $showfolder = gpcGet("folder");
  if($showfolder[strlen($showfolder)-1]!="/" && $showfolder[strlen($showfolder)-1]!="\\") {
    $showfolder .= "/";
  }
  // Prueft Existenz von $showfolder, wenn nicht vorhanden, gehe ins Standardverzeichnis
  if(!is_dir($media_dir.$showfolder)) {
    $showfolder = "";
  }
}

// Bearbeite $showfolder-Variable, Fuehre einige Pruefungen durch

// Wandle Backshlashes in Slashes um
$showfolder = str_replace("\\", "/", $showfolder);

// Pruefe auf Hackversuche durch ..
if(preg_match("|\.\.|", $showfolder) >= 1) {
  // Melde Hackversuch
  $glog->add("hack", "User '".$_SESSION['user']."' with IP '".$_SERVER['REMOTE_ADDR']."' tried to get access to folder ".$showfolder);
  
  // Setzte $showfolder-Variable auf das Root-Verzeichnis
  $showfolder = "";
}

// Definiere Variablen
$showfoldera = array();
$media_upper = "";
$media_upper_possible = false;

// Ersetze doppelte Slashes durch einfache
$showfolder = str_replace("//", "/", $showfolder);

if(!empty($showfolder)) {
  // Sorge dafuer, dass vorne und hinten keine Slashes sind
  if($showfolder[0]=="/") {
    $showfolder=substr($showfolder, 1);
  }
  if($showfolder[strlen($showfolder)-1]=="/") {
    $showfolder=substr($showfolder, 0, strlen($showfolder)-1);
  }
}

if(!empty($showfolder) && !in_array($showfolder, array(".", "/", "./", "/.", "/./"))) {
  // Eine Verzeichnisebene hoeher ist moeglich
  $media_upper_possible = true;
  
  // Splite die Variable $showfolder auf
  $showfoldera = explode("/", $showfolder);
  
  // Durchlaufe Array
  for($i=0; $i<count($showfoldera)-1; $i++) {
    $media_upper .= "/".$showfoldera[$i];
  }
}

// Pruefe auf Schlussslashes in den Variablen $media_upper und $showfolder
if(!empty($media_upper) && $showfolder[strlen($media_upper)-1]!="/") {
  $media_upper .= "/";
}
if(!empty($showfolder) && $showfolder[strlen($showfolder)-1]!="/") {
  $showfolder .= "/";
}

// Grossansicht einer Datei
if(!empty($showfile)) {
  include_once "big.php";
  
// Neuen Ordner erstellen
} else if(gpcGet("action", "newfolder")) {
  include_once "newfolder.php";
  
// Umbenennen von Dateien
} else if(gpcPost("mediabutton", "rename")) {
  include_once "rename.php";

// Loeschen von Dateien
} else if(gpcPost("mediabutton", "delete")) {
  include_once "delete.php";
  
} else if(gpcPost("mediabutton", "renameexe") || gpcPost("mediabutton", "deleteexe") || gpcPost("action", "createnewfolder")) {
  if(gpcPost("mediabutton", "renameexe")) {
    include_once "rename.php";
  } else if(gpcPost("action", "createnewfolder")) {
    include_once "newfolder.php";
  } else {
    include_once "delete.php";
  }
  include_once "fileview.php";
  
// Upload einer Datei
} else if(gpcGet("action", "upload") || gpcPost("action", "upload")) {
  include_once "upload.php";
  include_once "fileview.php";
  
// Normale Anzeige
} else {
  include_once "fileview.php";
}

if($media_upper_possible) {
  $media_left .= "<img src=\"css/images/folder.gif\" alt=\"Ordner\" /><a href=\"".$media_linker."&amp;folder=".$media_upper."\" class=\"tooltip\" title=\"H&ouml;her :: Eine Verzeichnisebene h&ouml;her\">..</a>\n<br />\n";
}
$dirlist = createFolderList($media_dir.$showfolder);
if(count($dirlist)==0) {
  $media_left .= "<p>Es sind keine Ordner vorhanden</p>";
} else {
  foreach($dirlist as $dir) {
    $media_left .= "<img src=\"css/images/folder.gif\" alt=\"Ordner\" />\n<a href=\"".$media_linker."&amp;folder=".$showfolder.$dir."\" class=\"tooltip\" title=\"".longkicker($dir, 18)."/ :: Inhalt des Ordners anzeigen\">".longkicker($dir, 20)."</a>\n<br />\n";
  }
}
$media_left .= "</fieldset>\n";
?>